$(function() {
    // 定义开关变量
    var flagUser = false
    var flagPwd = false
    var flagCpwd = false
    var flagAllow = false
    var flagCode = false

    // 找到所在标签元素
    var $user_name = $("#number")
    var $pwd = $('#password')
    var $cpwd = $('#password1')
    var $allow = $('#allow')
    $code = $("#code");
    $code1 = $("#code1");
    // var $submit = $('.login-btn')

    // 1.如果失去焦点，则进行检查判断用户名是否合法
    $user_name.blur(function() {
        // 封装函数 调用函数
        fnCheckUser()
    })

    function fnCheckUser() {
        // 获取用户输入的数据
        var vals = $user_name.val()
            // 正则，正则验证用户输入的数据是否合法
        var re = /^\w{6,20}$/

        if (vals == '') {
            $user_name.parent().next().show().html('用户名不能为空')
            flagUser = false
            return
        }
        if (re.test(vals)) {
            // 合法 -- 隐藏报错信息
            $user_name.parent().next().hide()
            flagUser = true
        } else {
            // 不合法 -- 报错 -- 下面的span标签显示
            $user_name.parent().next().show().html('用户名是6-20位数字、字母和下划线！')
            flagUser = false
        }
    }

    // 2.如果密码框失去焦点，则进行检查判断密码是否合法
    $pwd.blur(function() {
        // 封装函数，调用函数
        fnCheckPwd()
    })

    function fnCheckPwd() {
        // 获取密码框输入的数据
        var vals = $pwd.val()
            // 密码正则匹配表达式
        var rePass = /^[\w!-@#$%^&*]{6,20}$/
            // 如果输入框为空，则提示不能为空并return
        if (vals == '') {
            $pwd.parent().next().show().html('密码不能为空')
            flagPwd = false
            return
        }
        // 正则验证密码输入是否合法
        if (rePass.test(vals)) {
            // 如果匹配成功，则隐藏span标签
            $pwd.parent().next().hide()
            flagPwd = true
        } else {
            // 如果匹配失败，则显示span标签，替换提示信息
            $pwd.parent().next().show().html('密码是6到20位字母、数字，还可包含@!#$%^&*-字符')
            flagPwd = false
        }
    }
    $code1.blur(function() {
            change();
        })
        // 验证码组成库
    function fun() {
        var arrays = new Array(
            '1', '2', '3', '4', '5', '6', '7', '8', '9', '0',
            'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j',
            'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't',
            'u', 'v', 'w', 'x', 'y', 'z',
            'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J',
            'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T',
            'U', 'V', 'W', 'X', 'Y', 'Z'
        );
        codes = ''; // 重新初始化验证码
        for (var i = 0; i < 6; i++) {
            // 随机获取一个数组的下标
            var r = parseInt(Math.random() * arrays.length);
            codes += arrays[r];
        }
        // 验证码添加到input里
        $code.val(codes);


    }
    fun();
    $code.click(fun)

    function change() {

        if ($code1.val() == '') {
            $code1.parent().next().next().show().html('验证码不能为空');
            flagCode = false;
            return;
        }
        if ($code1.val() == $code.val()) {
            $code1.parent().next().next().hide();
            flagCode = true;

        } else {
            $code1.parent().next().next().show().html('验证码错误')
            flagCode = false;
            return
        }
    }







    // 3.判断两次输入的密码是否一致
    $cpwd.blur(function() {
        // 封装函数，调用函数
        fnCheckCpwd()
    })

    function fnCheckCpwd() {
        // 获取重复密码框输入的数据
        var vals = $pwd.val()
        var cvals = $cpwd.val()
        if (cvals == '') {
            $cpwd.parent().next().show().html('重复密码框不能为空')
            flagCpwd = false
            return
        }
        if (vals == cvals) {
            $cpwd.parent().next().hide()
            flagCpwd = true
        } else {
            $cpwd.parent().next().show().html('两次密码输入不一致，请重新输入')
            flagCpwd = false
            return
        }
    }




    // 4.点击同意协议复选框，判断是否勾选。如果勾选，则隐藏提示信息，没有勾选，则显示报错信息
    $allow.click(function() {
            fnCheckAllow()
        })
        // 封装函数
    function fnCheckAllow() {
        if ($allow.prop('checked')) {
            $allow.next().hide()
            flagAllow = true
        } else {
            $allow.next().show().html("请勾选同意协议")
            flagAllow = false
        }
    }


    $(".login-btn").click(function() {
        if (flagUser && flagPwd && flagCpwd && flagAllow && flagCode) {
            $.ajax({
                type: "POST",
                url: "/zhj/goodsAndShoppingCart/addUser.php",
                data: {
                    username: $("#number").val(),
                    userpass: $("#password").val()
                },
                success: function(msg) {
                    console.log(msg);
                    if (msg == "success") {
                        alert("注册成功！");
                        location.href = "denglu.html";

                    } else {
                        alert("注册失败");
                    }
                }
            });

            $.ajax({
                type: "GET",
                url: "/zhj/goodsAndShoppingCart/checkUser.php",
                data: {
                    username: $("#number").val(),
                },
                success: function(res) {
                    console.log(res);
                    if (res == "0") {
                        alert("用户已存在");
                    }
                }
            });
        } else {
            alert("请完善注册内容")
        }
    })
})